\section{NFcore::DumpSystem Class Reference}
\label{classNFcore_1_1DumpSystem}\index{NFcore::DumpSystem@{NFcore::DumpSystem}}
{\tt \#include $<$NFoutput.hh$>$}



\subsection{Detailed Description}
Class for outputting the state of the system. 

This class is useful for outputting and dumping all the states of the molecules in the system. This is ideal for then determining complex output values such as average aggregate size. \doxyref{DumpSystem}{p.}{classNFcore_1_1DumpSystem} objects are initialized at most once per system by the \doxyref{createSystemDumper()}{p.}{namespaceNFinput_19ed804a2b6e64acebc7ad49f95498fd} function defined in the \doxyref{NFinput.hh}{p.}{NFinput_8hh} file.

to invoke: use -dump flag as: -dump [t1;t2;t3;...tn]-$>$/optional/path/to/directory where t1 to tn are the output times you want dumped. you can also list the output times in a matlab style sequence as: -dump [t\_\-start:step:t\_\-end] if no step is given, the step is assumed to be at one second intervals. the path to the output directory is optional, and if omitted the files will be dumped to the current directory.

For each output time, a number of files will be created. There will be one header file that contains the number of molecules and other \doxyref{MoleculeType}{p.}{classNFcore_1_1MoleculeType} information needed to correctly read the binary files. Then, there will be one binary file for each \doxyref{MoleculeType}{p.}{classNFcore_1_1MoleculeType} giving the details of each molecule as

moleculeId,complexId,state\_\-1,partner\_\-1, ... state\_\-n,partner\_\-n,localFuncValue\_\-1 ... localFuncValue\_\-n the moleculeId is the unique identifier of the molecule. The complexId gives the unique id of the complex the molecule is in. For each component, the state value and the binding partner if any is given. Finally, each local function's value is given.

If you don't want to worry about all of that, take a look at the NFanalysis matlab library for tools that let you easily read the binary files into a nice data structure that can be used to analyze output. \subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
{\bf DumpSystem} ({\bf System} $\ast${\bf s}, vector$<$ double $>$ {\bf dumpTimes}, string {\bf pathToFolder}, bool {\bf verbose})
\begin{CompactList}\small\item\em The only constructor of \doxyref{DumpSystem}{p.}{classNFcore_1_1DumpSystem} objects. \item\end{CompactList}\item 
{\bf $\sim$DumpSystem} ()
\begin{CompactList}\small\item\em Deconstructor that does nothing - DumpSystems don't tie up any heap memory. \item\end{CompactList}\item 
void {\bf tryToDump} (double simTime)
\begin{CompactList}\small\item\em Key function of the \doxyref{DumpSystem}{p.}{classNFcore_1_1DumpSystem} class that is called at each simulation step. \item\end{CompactList}\end{CompactItemize}
\subsection*{Protected Member Functions}
\begin{CompactItemize}
\item 
void {\bf dumpHeaderFile} (double dumpTime)
\begin{CompactList}\small\item\em Protected function for dumping the header file at the given time step. \item\end{CompactList}\item 
void {\bf dumpMoleculeTypeFiles} (double dumpTime)
\begin{CompactList}\small\item\em Protected function for dumping the \doxyref{MoleculeType}{p.}{classNFcore_1_1MoleculeType} files at the given time step. \item\end{CompactList}\end{CompactItemize}
\subsection*{Protected Attributes}
\begin{CompactItemize}
\item 
{\bf System} $\ast$ {\bf s}
\item 
int {\bf currentDumpTimeIndex}
\item 
vector$<$ double $>$ {\bf dumpTimes}
\item 
string {\bf pathToFolder}
\item 
bool {\bf verbose}
\end{CompactItemize}


\subsection{Constructor \& Destructor Documentation}
\index{NFcore::DumpSystem@{NFcore::DumpSystem}!DumpSystem@{DumpSystem}}
\index{DumpSystem@{DumpSystem}!NFcore::DumpSystem@{NFcore::DumpSystem}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}DumpSystem::DumpSystem ({\bf System} $\ast$ {\em s}, vector$<$ double $>$ {\em dumpTimes}, string {\em pathToFolder}, bool {\em verbose})}\label{classNFcore_1_1DumpSystem_831ce163c6d5f74ebeb80d9bd0392f86}


The only constructor of \doxyref{DumpSystem}{p.}{classNFcore_1_1DumpSystem} objects. 

Takes a reference to the system, a sorted list of double valued number corresponding to the simulation times that a dump is required. The relative path to the output directory of all your folders, and a flag that tells us whether or not to output random things. \index{NFcore::DumpSystem@{NFcore::DumpSystem}!$\sim$DumpSystem@{$\sim$DumpSystem}}
\index{$\sim$DumpSystem@{$\sim$DumpSystem}!NFcore::DumpSystem@{NFcore::DumpSystem}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}DumpSystem::$\sim$DumpSystem ()}\label{classNFcore_1_1DumpSystem_9bf765bb7d36e18730b37be0d2088e09}


Deconstructor that does nothing - DumpSystems don't tie up any heap memory. 



\subsection{Member Function Documentation}
\index{NFcore::DumpSystem@{NFcore::DumpSystem}!tryToDump@{tryToDump}}
\index{tryToDump@{tryToDump}!NFcore::DumpSystem@{NFcore::DumpSystem}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void DumpSystem::tryToDump (double {\em simTime})}\label{classNFcore_1_1DumpSystem_2b8cdc8be253da3e60a34b50433af6e9}


Key function of the \doxyref{DumpSystem}{p.}{classNFcore_1_1DumpSystem} class that is called at each simulation step. 

The \doxyref{System}{p.}{classNFcore_1_1System} will call this function at each step, and the \doxyref{DumpSystem}{p.}{classNFcore_1_1DumpSystem} will determine whether or not to dump its files based on the output times originally provided. \index{NFcore::DumpSystem@{NFcore::DumpSystem}!dumpHeaderFile@{dumpHeaderFile}}
\index{dumpHeaderFile@{dumpHeaderFile}!NFcore::DumpSystem@{NFcore::DumpSystem}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void DumpSystem::dumpHeaderFile (double {\em dumpTime})\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1DumpSystem_bfb45262bb01dca1fdd5632b09364857}


Protected function for dumping the header file at the given time step. 

\index{NFcore::DumpSystem@{NFcore::DumpSystem}!dumpMoleculeTypeFiles@{dumpMoleculeTypeFiles}}
\index{dumpMoleculeTypeFiles@{dumpMoleculeTypeFiles}!NFcore::DumpSystem@{NFcore::DumpSystem}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void DumpSystem::dumpMoleculeTypeFiles (double {\em dumpTime})\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1DumpSystem_bec645c7c6d2a72437cfb68caaddae70}


Protected function for dumping the \doxyref{MoleculeType}{p.}{classNFcore_1_1MoleculeType} files at the given time step. 



\subsection{Member Data Documentation}
\index{NFcore::DumpSystem@{NFcore::DumpSystem}!s@{s}}
\index{s@{s}!NFcore::DumpSystem@{NFcore::DumpSystem}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf System}$\ast$ {\bf NFcore::DumpSystem::s}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1DumpSystem_734d210169dcdf2dd371e04d57f97b91}


reference to the system being dumped \index{NFcore::DumpSystem@{NFcore::DumpSystem}!currentDumpTimeIndex@{currentDumpTimeIndex}}
\index{currentDumpTimeIndex@{currentDumpTimeIndex}!NFcore::DumpSystem@{NFcore::DumpSystem}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int {\bf NFcore::DumpSystem::currentDumpTimeIndex}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1DumpSystem_d7956b5d446aa4d208e1f3e30aa59d0c}


keeps track of when we have dumped so far \index{NFcore::DumpSystem@{NFcore::DumpSystem}!dumpTimes@{dumpTimes}}
\index{dumpTimes@{dumpTimes}!NFcore::DumpSystem@{NFcore::DumpSystem}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}vector$<$double$>$ {\bf NFcore::DumpSystem::dumpTimes}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1DumpSystem_5fc1179c4292cea8a82ef4c72f2c304d}


the list of the times to dump \index{NFcore::DumpSystem@{NFcore::DumpSystem}!pathToFolder@{pathToFolder}}
\index{pathToFolder@{pathToFolder}!NFcore::DumpSystem@{NFcore::DumpSystem}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}string {\bf NFcore::DumpSystem::pathToFolder}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1DumpSystem_2e4a8af5ec4de0894ebd638e7f9b33d8}


gives the path to the output directory \index{NFcore::DumpSystem@{NFcore::DumpSystem}!verbose@{verbose}}
\index{verbose@{verbose}!NFcore::DumpSystem@{NFcore::DumpSystem}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool {\bf NFcore::DumpSystem::verbose}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1DumpSystem_b85e33761d8ff0cf9aecc0f70c399f85}


flag that tells us if we should output all sorts of things 

The documentation for this class was generated from the following files:\begin{CompactItemize}
\item 
/home/msneddon/eclipse/galileoSR1\_\-cpp/workspace/NFsim/src/NFoutput/{\bf NFoutput.hh}\item 
/home/msneddon/eclipse/galileoSR1\_\-cpp/workspace/NFsim/src/NFoutput/{\bf NFoutput.cpp}\end{CompactItemize}
